﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BolsaTrabajo.BusinessEntities;
using BolsaTrabajo.DataAccess;
using System.Transactions;
using System.Data;

namespace BolsaTrabajo.BusinessLogic
{
    public class PostulacionEmpresaLogic
    {
        PostulacionEmpresaData odata = null;

        public PostulacionEmpresaLogic()
        {
            odata = new PostulacionEmpresaData();
        }

        public Boolean Registrar(String applicationId, Int32 idPostulante, Int32 idAvisoTrabajo, String descripcionPostulante, String idUsuarioCreacion, DateTime fechaCreacion, Boolean idEstado)
        {
            Boolean resultado = true;

            PostulacionEmpresa BEPostulacionEmpresa = new PostulacionEmpresa();
            BEPostulacionEmpresa.ApplicationId = new Guid(applicationId);
            BEPostulacionEmpresa.IdPostulante = idPostulante;
            BEPostulacionEmpresa.IdAvisoTrabajo = idAvisoTrabajo;
            BEPostulacionEmpresa.DescripcionPostulante = descripcionPostulante;
            BEPostulacionEmpresa.IdUsuarioCreacion = new Guid(idUsuarioCreacion);
            BEPostulacionEmpresa.FechaCreacion = fechaCreacion;
            BEPostulacionEmpresa.IdEstado = idEstado;

            try
            {
                using (TransactionScope tx = new TransactionScope(TransactionScopeOption.Suppress))
                {
                    resultado = odata.Registrar(BEPostulacionEmpresa);
                    tx.Complete();
                }
            }
            catch (Exception)
            {

                resultado = false;
            }
            return resultado;
        }

        public Boolean Actualizar(PostulacionEmpresa item)
        {
            Boolean resultado = true;
            try
            {
                using (TransactionScope tx = new TransactionScope(TransactionScopeOption.Suppress))
                {
                    resultado = odata.Actualizar(item);
                    tx.Complete();
                }
            }
            catch (Exception)
            {

                resultado = false;
            }
            return resultado;
        }

        public Boolean Eliminar(PostulacionEmpresa item)
        {
            Boolean resultado = true;
            try
            {
                using (TransactionScope tx = new TransactionScope(TransactionScopeOption.Suppress))
                {
                    resultado = odata.Eliminar(item);
                    tx.Complete();
                }
            }
            catch (Exception)
            {

                resultado = false;
            }
            return resultado;
        }
    }
}
